package com.ffggffgfv.backend.service;

import com.ffggffgfv.backend.entity.Permission;

import java.util.List;

/**
 * 权限服务接口
 */
public interface PermissionService {

    /**
     * 查询所有权限（树形结构）
     *
     * @param type     权限类型（可选）
     * @param parentId 父级ID（可选）
     * @return 权限列表
     */
    List<Permission> findAll(Integer type, Long parentId);

    /**
     * 根据ID查询权限
     *
     * @param id 权限ID
     * @return 权限对象
     */
    Permission findById(Long id);

    /**
     * 创建权限
     *
     * @param permission 权限对象
     * @return 创建的权限对象
     */
    Permission createPermission(Permission permission);

    /**
     * 判断权限编码是否已存在
     *
     * @param code 权限编码
     * @return 是否存在
     */
    boolean isCodeExists(String code);

    /**
     * 构建权限树
     *
     * @param permissions 权限列表
     * @return 树形权限列表
     */
    List<Permission> buildTree(List<Permission> permissions);
}
